home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 21 / CU Amiga Magazine's Super CD-ROM 21 (1998)(EMAP Images)(GB)[!][issue 1998-04].iso / CUCD / Programming / RTGMaster / devdocs / rtg3DExt.ad < prev    next >
Text File  |  1997-10-09  |  11KB  |  344 lines

  1. rtg3DExt/ClrZBuf                                            rtg3DExt/ClrZBuf
  2.  
  3.     NAME
  4.         ClrZBuf - Clears the Z Buffer
  5.  
  6.     SYNOPSIS
  7.         void ClrZBuf(RtgScreen)
  8.                       A0
  9.  
  10.         void ClrZBuf(struct RtgScreen *)
  11.  
  12.     FUNCTION
  13.         Clears the Z Buffer. This function does not work yet.
  14.  
  15.     INPUTS
  16.         RtgScreen - The used RtgScreen
  17.  
  18.     SEE ALSO
  19.  
  20. rtg3DExt/ClearBuf                                           rtg3DExt/ClearBuf
  21.  
  22.     NAME
  23.         ClearBuf - Clears a Doublebuffering Buffer
  24.  
  25.     SYNOPSIS
  26.         void ClearBuf(RtgScreen,BufNum)
  27.                        A0        D0
  28.  
  29.         void ClearBuf(struct RtgScreen *, ULONG)
  30.  
  31.     FUNCTION
  32.         This function is used to clear the Back Buffer (it can also clear
  33.         the front buffer, but this does not make sense). This function
  34.         needs at least rtgCV3D.library V2.43 to work correctly.
  35.  
  36.         Note that a
  37.         rtgCV3D.library screen (and possible screens of other 3D Sublibs also)
  38.         can only do 2 buffers, not 3.
  39.  
  40.         Also note, that ClearBuf ONLY works if you do NOT promote the Screen !!!
  41.         This CANNOT be fixed, never promote a rtgCV3D.library screen, or you get
  42.         much flickering.
  43.  
  44.     INPUTS
  45.         RtgScreen - The RtgScreen
  46.         BufNum    - Number of the Buffer to clear
  47.  
  48.     SEE ALSO
  49.  
  50. rtg3DExt/CreateTex                                          rtg3DExt/CreateTex
  51.  
  52.     NAME
  53.         CreateTex - Creates a Texture Handle
  54.  
  55.     SYNOPSIS
  56.         struct TexHandle *CreateTex(RtgScreen,Tags)
  57.                 D0                   A0        A1
  58.  
  59.         struct TexHandle *CreateTex(struct RtgScreen *,struct TagItem *)
  60.  
  61.     FUNCTION
  62.         This function creates a texture handle. The provided tags list, which
  63.         features of the 3D Engine are to be used.
  64.  
  65.         tex_TexMap:     Address of the Texture-Map, which should be uploaded to the
  66.                         Graphics Memory. Note: This is not the Address of the Texturemap
  67.                         HANDLE, it is the address of the Texture itself !!!
  68.  
  69.         tex_MapSize:    The Size of this Map
  70.  
  71.         tex_ColorFmt:   The Color Format of the Texture-Map
  72.  
  73.         tex_FilterType: The Filtering Type, that should be used for Texture Filtering
  74.  
  75.         tex_TexWrap:    Boolean Flag, if Texture-Wrapping should be used
  76.  
  77.         tex_LitTex:     Boolean Flag, if Lit-Texturing should be used
  78.  
  79.         tex_AlphaBlend: The Alpha-Blending config
  80.  
  81.         Take note, that uploading a texture to GFX Memory should only be done
  82.         at times where speed is not important. Also take note, that there
  83.         will be a "Screenmode-System" for Color-Formats and Filter-Types to
  84.         support Multiple Chipsets in a later version of this library. Also
  85.         take note, that this call is still to be expanded, and that you also
  86.         should check your Chipset3D structure if a certain operation is
  87.         available.
  88.  
  89.         The Alpha Blending Values are :
  90.  
  91.         ABlend_Source  = -1
  92.         ABlend_None    =  0
  93.         ABlend_Texture =  1
  94.  
  95.         The Blending Values are :
  96.  
  97.         Blend_Com      =  0
  98.         Blend_Mod      =  1
  99.         Blend_Decal    =  2
  100.  
  101.         The Color Formats are :
  102.  
  103.         CF_ARGB32         =  0
  104.         CF_ARGB16         =  1 (RGB4444 !!!)
  105.         CF_ARGB15         =  2 (RGB1555 !!!)
  106.         CF_ALP4BLE4       =  3
  107.         CF_BLEND4LO       =  4
  108.         CF_BLEND4HI       =  5
  109.         CF_LUT8           =  6 (Palletized Data)
  110.         CF_YUYV16         =  7 (YUV Data)
  111.  
  112.         These constants CHANGED, as the names used before (ARGB32...) were
  113.         already used by the smr_ChunkySupport tag. As the 3D Lib was not
  114.         yet released, this namechange is not a problem, though.
  115.  
  116.         The Filter Types are :
  117.  
  118.         TPPM1          =  0 (MIP-Mapping, not yet supported)
  119.         TPPM2          =  1 (Linear MIP-Mapping, not yet supported)
  120.         TPPM4          =  2 (Bi-linear MIP-Mapping, not yet supported)
  121.         TPPM8          =  3 (Tri-linear MIP-Mapping, not yet supported)
  122.         TPP1           =  4 (Point Sampling)
  123.         TPPV2          =  5 (For YUV Data)
  124.         TPP4           =  6 (Bi-Linear Mapping)
  125.  
  126.         Also always have a look at the Chipset3D Flags:
  127.  
  128.         0 Fogging and Alpha Blending cannot happen at the same time on this chip
  129.         1 Alpha Blending Objects can cause problems with Z-Buffering on this chip
  130.         2 Wrap-Around is not supported for p-correct textures on this chip
  131.         3 In Palettized Mode, this Chip only supports Decal Blending
  132.         4 Gouraud Shading does not work in Palettized Mode (Reasonable :) )
  133.         5 Lit-Texturing does not work in Palettized Mode (Reasonable :) )
  134.  
  135.         The Chipset3D structure looks like the following, more info in 3DExt.guide:
  136.  
  137.         struct Chipset3D
  138.         {
  139.          struct Library *Base3D; // This is the LibBase of rtg3DExt !!!
  140.          int mapping;
  141.          int p_mapping;
  142.          int filters;
  143.          int tmapclr;
  144.          int fog;
  145.          int blend;
  146.          int ablend;
  147.          int zbuf;
  148.          int mux;
  149.          int gouraud;
  150.          int lit;
  151.          int line;
  152.          int wrap;
  153.          int ovl;
  154.          int mem;
  155.          int size;
  156.          int lsize;
  157.          int flags;
  158.         };
  159.  
  160.         The Chipset3D structure tells you the features of a chip, the max. size
  161.         of the textures, the 3DExt LibBase of the Chip, the Flags and how much
  162.         GFX Memory you have. You get the address of the structure using
  163.         GetRtgScreenData of rtgmaster.library. Z Buffering is enabled using
  164.         OpenRtgScreen of rtgmaster.library (but up to now it does not work).
  165.  
  166.         The function does not upload the texture. This has to be done manually,
  167.         or using LoadTex.
  168.  
  169.         If not enough texture memory is available, CreateTex() returns 0.
  170.  
  171.     INPUTS
  172.         RtgScreen - The RtgScreen to use
  173.         Tags      - The Tags to use
  174.  
  175.     RESULTS
  176.         TexHandle - Pointer to the TexHandle of the created Texture
  177.  
  178.     SEE ALSO
  179.         DeleteTex(),GetTexAttr(),SetTexAttr()
  180.  
  181. rtg3DExt/DeleteTex                                          rtg3DExt/DeleteTex
  182.  
  183.     NAME
  184.         DeleteTex - Frees a Texture Handle again.
  185.  
  186.     SYNOPSIS
  187.         DeleteTex(RtgScreen,th)
  188.                    A0       A1
  189.  
  190.         void DeleteTex(struct RtgScreen *,struct TexHandle *)
  191.  
  192.     FUNCTION
  193.         This function deletes a Texture Handle again. It does not free the memory
  194.         used by the Texture. This has to be done using FreeTex.
  195.  
  196.     INPUTS
  197.         RtgScreen - The RtgScreen to which the TexHandle was applied
  198.         TexHandle - The Handle of the Texture to be deleted
  199.  
  200.     SEE ALSO
  201.         CreateTex(),GetTexAttr(),SetTexAttr()
  202.  
  203. rtg3DExt/FreeTex                                            rtg3DExt/FreeTex
  204.  
  205.     NAME
  206.         FreeTex - Deletes a texture from GFX Memory again
  207.  
  208.     SYNOPSIS
  209.         void FreeTex(RtgScreen,Tex, size)
  210.                       A0        A1   D0
  211.  
  212.         void FreeTex(struct RtgScreen *,void *, int)
  213.  
  214.     FUNCTION
  215.         This function removes a texture from the Memory
  216.         Buffer again. The Memory Buffer is used as temporary
  217.         Buffer until CreateTex uploads the Texture is uploaded
  218.         to the GFX Memory. FreeTex clears this Buffer again.
  219.  
  220.     INPUTS
  221.         RtgScreen - The RtgScreen
  222.         Tex       - The Memory Buffer for the texture
  223.         size      - The Size of the Texture
  224.  
  225.     SEE ALSO
  226.         LoadTex()
  227.  
  228. rtg3DExt/GetTexAttr                                         rtg3DExt/GetTexAttr
  229.  
  230.     NAME
  231.         GetTexAttr - To get the values set in a TexHandle
  232.  
  233.     SYNOPSIS
  234.         ULONG GetTexAttr(RtgScreen,TexHandle,AttrNum)
  235.          D0               A0        A1        D0
  236.  
  237.         ULONG GetTexAttr(struct RtgScren *,struct TexHandle *,ULONG)
  238.  
  239.     FUNCTION
  240.         Using this function, you can re-read the value of the Attributes
  241.         you set using CreateTex. Not yet implemented.
  242.  
  243.     INPUTS
  244.         RtgScreen - The RtgScreen to use
  245.         TexHandle - The TexHandle to use
  246.         AttrNum   - The Attribute to change
  247.  
  248.     SEE ALSO
  249.         SetTexAttr()
  250.  
  251. rtg3DExt/LoadTex                                            rtg3DExt/LoadTex
  252.  
  253.     NAME
  254.         LoadTex - Uploads a texture to the GFX Memory
  255.  
  256.     SYNOPSIS
  257.         void LoadTex(RtgScreen,name, size)
  258.                       A0        A1    D0
  259.  
  260.         void LoadTex(struct RtgScreen *,void *,char *, int)
  261.  
  262.     FUNCTION
  263.         This function loads the Texture to a temporary Buffer (as it cannot
  264.         be uploaded from diskdrive to GFX Memory directly), before CreateTex
  265.         uploads it to the GFX Memory.
  266.  
  267.     INPUTS
  268.         RtgScreen - The RtgScreen to use
  269.         name      - The filename under which the texture data is stored
  270.         size      - The size of the texture
  271.  
  272.     SEE ALSO
  273.         FreeTex()
  274.  
  275. rtg3DExt/PaintT3D                                           rtg3DExt/PaintT3D
  276.  
  277.     NAME
  278.         PaintT3D - Paints textured or shaded triangles to the Screen
  279.  
  280.     SYNOPSIS
  281.         PaintT3D(RtgScreen,TexHandle,BlendType)
  282.                   A0        A1        D0
  283.  
  284.         void PaintT3D(struct RtgScreen *,struct TexHandle *,ULONG)
  285.  
  286.     FUNCTION
  287.         This function renders a triangle, specified as
  288.  
  289.         typedef struct
  290.         {
  291.          long x,y,z,u,v;
  292.          long color;
  293.         } Point3D;
  294.  
  295.         typedef struct
  296.         {
  297.          Point3D p1,p2,p3;
  298.          struct TexHandle *th;
  299.         } Triangle3D;
  300.  
  301.         The Triangle is described by three points with polygon- and
  302.         texture-coordinates. The color is for the use of Gouraud-Shading
  303.         or Lit-Texturing. The Texture-Handle indicates the texture to use.
  304.  
  305.         The BlendType can be used to light up or to darken the image. Normally
  306.         only 15/16/24 Bit Screens support this fully. You should use Doublebuffering
  307.         to display the textures. Sadly, i did not yet get this function work together
  308.         with Back-Bitmap-Clearing. But well... this is an Alpha Version.
  309.  
  310.     INPUTS
  311.         RtgScreen - The RtgScreen to use
  312.         TexHandle - The TexHandle to use
  313.         BlendType - The BlendType to use
  314.  
  315.     SEE ALSO
  316.         CreateTex()
  317.  
  318.  
  319. rtg3DExt/SetTexAttr                                         rtg3DExt/SetTexAttr
  320.  
  321.     NAME
  322.         SetTexAttr - To change the values set in a TexHandle
  323.  
  324.     SYNOPSIS
  325.         void GetTexAttr(RtgScreen,TexHandle,AttrNum,Value)
  326.                          A0        A1        D0      D1
  327.  
  328.         void GetTexAttr(struct RtgScren *,struct TexHandle *,ULONG,ULONG)
  329.  
  330.     FUNCTION
  331.         Using this function, you can re-set the value of the Attributes
  332.         you set using CreateTex with different values. Not yet implemented.
  333.  
  334.     INPUTS
  335.         RtgScreen - The RtgScreen to use
  336.         TexHandle - The TexHandle to use
  337.         AttrNum   - The Attribute to change
  338.         Value     - The new value
  339.  
  340.     SEE ALSO
  341.         GetTexAttr()
  342.  
  343.  
  344.